HyperDA does not support the if command structures. But there may be some handlers you wish to execute only if the user is not using your stack under HyperDA. To do this, simply create a handler that HyperDA will not recognize (any non-standard, user-defined handler) and put into that handler all of the operations you want performed when the user is running under HyperCard.
For example, if you want to use a calculated navigational command if the user is in HyperCard but will use a straight-forward collection of go next commands if he’s browsing under HyperDA, simply write a handler like this one:
on mouseUp
doCalcMovement 4
exit mouseUp
go next
go next
go next
go next
end mouseUp
Then program the doCalcMovement handler like this:
on doCalcMovement howMany
repeat howMany
go next
end repeat
end doCalcMovement
When the user presses the mouse in the button involved in this process, HyperDA looks at the mouseUp handler. It does not understand the first two lines, so it simply skips them. Then it executes four go next statements. But when the user presses the same button under HyperCard, the first two commands are acknowledged and executed, resulting in the repeat loop being executed and the mouseUp handler being exited.
This is a simple example designed to demonstrate the principle. You will undoubtedly see many occasions in designing stacks for possible exploration under HyperDA when this approach will be useful.